1. Technical Field
The present invention relates generally to computer software development tools and more particularly to a method for debugging a Java application that includes native method dynamic load libraries (e.g., C or C++ code).
2. Description of the Related Art
Java, originally developed by Sun Microsystems, is a known software programming environment in which software programs, known as Java applications, are developed, tested and maintained. Java applications have found extensive use on the World Wide Web, which is the Internet's multimedia information retrieval system. Java developers often "extend" a Java application by linking the Java code with native method dynamic load libraries (or "dll's"). A "native method" dll is usually a function written in "C" or "C++" programming language and that is not portable across different operating platforms without recompilation. When the Java application includes linked native method dll's, a problem arises in debugging the application.
In particular, while "tools" for debugging Java code, on the one hand, and tools for debugging C/C++ code, on the other hand, are well-known, there are no available techniques for simultaneously debugging a piece of software that includes both types of code. As a result, the prior art has addressed the problem of debugging Java applications having linked native method dll's by a brute force approach--typically, by using distinct debug routines that are run separately. This approach requires the Java application (with the linked dll's) to be executed twice (one for each debug routine), thus substantially increasing the time necessary to debug the Java application. Another approach is to use distinct debugging routines, one for Java and one for the C or C++ code, and then switch back and forth between the two routines as needed. While such an approach is theoretically possible, the prior art has not found a way to implement such a technique in a reliable, efficient manner.
The present invention addresses this problem.